今天我們來實作第一個智能合約看看
首先,要發布智能合約一定就要就要有區塊鏈,我們也不可能直接就真金白銀把合約部署到真實世界的鏈上面,所以我們需要一個開發環境的區塊鏈,那就是:
Granache 是一個有gui,而且 可以快速啟動的一個本機區塊鏈服務。先依據你的作業選擇安裝。打開會進入,預設會開啟10個帳號可以讓你測試使用
預設要開幾個帳號,每個帳號多少錢,這都可以在設定裏面去做設定。
再來有區塊鏈環境,接下來就是要能夠編寫跟 complie 的 ide 了。就是
remix 是可以線上開發 solidity的ide,如果要搭配本機 Granache 做開發的話,要改用 http 連入喔,下面有額外說明。
打開 remix 後,先去設定你的部署的區塊鏈,選擇web3 provider
, Granache 預設 port 會開在 7545 ,所以只要把web3 provider endpoint
填入http://127.0.0.1:7545
,這樣就可以了。如下圖所示
因為瀏覽器的安全性設定,
https
不能直接連到http
,本機的區塊鏈服務應該不會有人特別上 ssl,所以這種情況下,瀏覽器必須要選擇用 http 進入,也就是 http://remix.ethereum.org,不然你會無法根本機的區塊鏈做連結。
或是去它官方 https://github.com/ethereum/remix-project,也有提供本機安裝服務,這樣就能在本機環境啟動 remix ide。
再來去工作區,新增一個helloworld.sol
點的檔案
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract HelloWorld {
string public world = "helloworld";
function hi() public view returns (string memory){
return world;
}
}
語法我們後面章節再來逐一介紹
新增完後,就可以直接按 compile,最後去上面設定 web3 provider 的地方,選擇 deploy,畫面上再切回 Granache ,去上面選單列的 transactions,就會看到如下圖
由上圖也能看到第二列 current block 也由0 變成 1了。這樣就完成了第一個 smart constract 的部署。